The present invention relates to interleavers. In particular, the invention relates to a frame-based modulus interleaver for use in a digital communications system.
In many applications, information is partitioned into discrete groups of information called "frames", each having a constant number of bits or groups of bits. The frames are generally transmitted over some communications channel and then reassembled at the receiver. Interleavers are used in communications systems to rearrange the sequencing of blocks of data (consisting of samples, individual bits, or groups of bits). Frequently, this interleaving may be for the purpose of separating correlated pieces of information, i.e., to provide statistical benefits when such data is transmitted over a communications channel. However, interleaving may be performed for other purposes as well, e.g., as part of an encryption algorithm.
The interleavers of the prior art were typically based upon procedures, which could be expressed in a formula or algorithmically. What they did was to "interleave" blocks of data prior to transmission, in order to obtain the statistical benefits which are realized by the randomized nature of the interleaved blocks which are transmitted over the communications channel. In the interleavers of the prior art, some of the interleaved blocks were typically moved from one frame to the next during the interleaving process.
A problem which has existed in the interleavers of the prior art is that when the original (non-interleaved) sampled data was interleaved, there was no way to insure that for each input (non-interleaved) frame, all of the data blocks which were in the frame which was input into the interleaver would also occupy a single frame which was output by the interleaver. Consequently, if there was some problem in the transmission of an interleaved frame over a communications channel, it could affect not only the frame which experienced the problem, but also one or more adjacent frames.
While foregoing problem had minimal impact upon the operation of many communications applications, in some applications, e.g., modems which are used for simultaneous transmission and reception of both voice and data ("SVD" modems), it would be desirable to have an interleaver which provided a one-to-one relationship between the (non-interleaved) data frames which go into the interleaver and the interleaved data frames which are output by the interleaver. In particular, it would be desirable to have all of the data blocks which were originally located within a given input frame within the same output frame, so that when the frame was transmitted, all of the data blocks would be in the same interleaved frame. Then, if a frame were to be lost or corrupted, it would not affect the samples in adjacent frames.